package main

import "fmt"

// 类型断言

// 方法1
func showType(x interface{}) {
	// 类型断言
	v, ok := x.(int)
	if !ok {
		// 说明猜错了
	} else {
		// 猜对了
		fmt.Println(v)
	}
}

// 方法2
func jsutifyType(x interface{}) {
	switch v := x.(type) {
	case string:
		fmt.Println("v:%v是string", v)
	case int:
		fmt.Println("v:%v是int", v)
	case bool:
		fmt.Println("v:%v是bool", v)
	default:
		fmt.Println(v)
	}
}

func main() {
	var x interface{}
	x = 100
	jsutifyType(x)
	jsutifyType(struct {
	}{})
}
